﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Didsoft.Mvc.Security;
using RBDD.Embol.UI.Web.Models;
using RBDD.Embol.AccesoDatos.Entidades;

namespace RBDD.Embol.UI.Web.Controllers
{
    public class MenuController : Controller
    {
        private List<AccesoViewModel> accesos;

        //
        // GET: /Menu/

        public ActionResult Index()
        {
            if (System.Web.HttpContext.Current.Session[StringsParams.SessionKey] == null)
                return RedirectToAction("Index", "Login");

            else
                return View(ContruirAccesos());
        }


        private List<AccesoViewModel> ContruirAccesos()
        {
            //obtenemos usuario logueado
            var usuario = SessionContext<Usuario>.UserInfo;

            switch (usuario.Rol.Nombre)
            {
                case "Admin":
                    return GetAccesosDeAministrador();
                case "Usuario":
                    return GetAccesosDeUsuario();
                default:
                    return GetMenusPorDefecto();
            }

        }

        private List<AccesoViewModel> GetMenusPorDefecto()
        {
            accesos = new List<AccesoViewModel>();
            accesos.Add(new AccesoViewModel() { Acceso = "../Login/CerrarSession", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Salir del Sistema" });
            return accesos;
        }

        private List<AccesoViewModel> GetAccesosDeAministrador()
        {
            accesos = new List<AccesoViewModel>();
            accesos.Add(new AccesoViewModel() { Acceso = "../Planta/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar REGION" });
            accesos.Add(new AccesoViewModel() { Acceso = "../Usuario/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar USUARIOS" });
            //accesos.Add(new AccesoViewModel() { Acceso = "../Reclamo/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "REGISTRO Y SEGUIMIENTO" });
            accesos.Add(new AccesoViewModel() { Acceso = "../ReclamoServicio/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar RECLAMOS X SERVICIO" });
            accesos.Add(new AccesoViewModel() { Acceso = "../ReclamoProducto/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar RECLAMOS X PRODUCTO" });
            //accesos.Add(new AccesoViewModel() { Acceso = "../Reporte/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Salir del Sistema" });
            return accesos;
        }

        private List<AccesoViewModel> GetAccesosDeUsuario()
        {
            accesos = new List<AccesoViewModel>();
            accesos.Add(new AccesoViewModel() { Acceso = "../Planta/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar REGION" });
            accesos.Add(new AccesoViewModel() { Acceso = "../Usuario/FilterList", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Gestionar USUARIOS" });
            accesos.Add(new AccesoViewModel() { Acceso = "../Login/CerrarSession", ImagenUrl = "../Content/images/Menu/new.png", TituloAcceso = "Salir del Sistema" });
            
            return accesos;
        }


        public ActionResult InfoCabecera()
        {
            if (System.Web.HttpContext.Current.Session[StringsParams.SessionKey] == null)
                return RedirectToAction("Index", "Login");

            try
            {
                ViewBag.NombreUsuario = SessionContext<Usuario>.UserInfo.Nombre;
                ViewBag.FechaInicioSesion = SessionContext<Usuario>.DateStarted;
                return PartialView();
            }
            catch
            {
                return PartialView();
            }
        }

    }
}
